// 用户注册验证
export async function userRegex(data) {
  const usernameRegex = /^[\u4e00-\u9fa5a-zA-Z0-9_]{1,6}$/
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/
  const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/
  let { username, password, email } = data;

  if (!usernameRegex.test(username)) {
    return { valid: false, message: '用户名格式不正确（支持中文、字母、数字和下划线，最多6个字符）' }
  }

  if (!emailRegex.test(email)) {
    return { valid: false, message: '邮箱格式不正确' }
  }

  if (!passwordRegex.test(password)) {
    return { valid: false, message: '密码格式不正确（至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符，长度至少8位）' }
  }

  return { valid: true }
}

// 文章验证
export async function postRegex(data) {
  const titleRegex = /^.{1,20}$/
  const contentRegex = /^[\s\S]{10,}$/;

  let { title, content } = data

  if (!titleRegex.test(title)) {
    return { valid: false, message: '标题不能为空，且长度不得超过20个字符' }
  }
  
  if (!contentRegex.test(content)) {
    return { valid: false, message: '内容不能为空，且长度至少为10个字符' }
  }

  return { valid: true };
}